﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Knights.Recursos;
using Microsoft.Xna.Framework;
using Knights.Objeto;
using Microsoft.Xna.Framework.Input;
using System.Threading;

namespace Knights
{
    class InterfazJuego
    {
        private string mensaje = ""; //prueba

        private Caballero caballero;
        //private List<Boton> botones;

        public InterfazJuego(Caballero caballero)
        {
            this.caballero = caballero;
            //botones = new List<Boton>();
            //botones.Add(new Boton(300, 500, "%", caballero.ActivarTecnica));
        }

        public void Actualizar()    //prueba
        {
            //caballero.Actualizar();
            KeyboardState teclado = Keyboard.GetState();

            if (teclado.IsKeyDown(Keys.NumPad0))
                mensaje = caballero.ActivarTecnica(0);
            if (teclado.IsKeyDown(Keys.NumPad1))
                mensaje = caballero.ActivarTecnica(1);
            if (teclado.IsKeyDown(Keys.NumPad2))
                mensaje = caballero.ActivarTecnica(2);
            if (teclado.IsKeyDown(Keys.NumPad3))
                mensaje = caballero.ActivarTecnica(3);
            if (teclado.IsKeyDown(Keys.NumPad4))
                mensaje = caballero.ActivarTecnica(4);
            if (teclado.IsKeyDown(Keys.NumPad5))
                mensaje = caballero.ActivarTecnica(5);
            if (teclado.IsKeyDown(Keys.NumPad6))
                mensaje = caballero.ActivarTecnica(6);
            if (teclado.IsKeyDown(Keys.NumPad7))
                mensaje = caballero.ActivarTecnica(7);
            if (teclado.IsKeyDown(Keys.NumPad8))
                mensaje = caballero.ActivarTecnica(8);
            if (teclado.IsKeyDown(Keys.NumPad9))
                mensaje = caballero.ActivarTecnica(9);
        }

        public void Dibujar(Juego juego)
        {
            //Luego debera dibujar nombre lugar actual o posicion en mapa
            juego.DibujarTexto(Fuentes.Arial, caballero.Nivel + " " + caballero.Nombre, new Vector2(5, 5), Color.White);
            juego.DibujarTexto(Fuentes.Arial, caballero.Salud + " / " + caballero.CalcularSalud(), new Vector2(20, 20), Color.Red);
            juego.DibujarTexto(Fuentes.Arial, caballero.Energia + " / " + caballero.CalcularEnergia(), new Vector2(20, 35), Color.Yellow);

            DibujarEstadisticas(juego);

            DibujarBarraTecnicas(juego);
        }

        private void DibujarEstadisticas(Juego juego)
        {
            string n = "\n";
            string texto = caballero.Rango + n + "Arm: " + caballero.Armadura + n;
            texto += "Fueza: " + caballero.Fuerza + n;
            texto += "Valor: " + caballero.Valor + n;
            texto += "Danio: " + caballero.Danio + n;
            texto += "%Critico: " + caballero.Critico + n;
            texto += "%Resist: " + caballero.Resistencia + n;
            texto += "%Recarga: " + caballero.Recarga;

            float posicionX = juego.TamanioVentana.Width - 150;
            juego.DibujarTexto(Fuentes.Arial, texto, new Vector2(posicionX, 5), Color.White);
        }

        private void DibujarBarraTecnicas(Juego juego)
        {
            //botones.Dibujar(juego);

            float posicionY = juego.TamanioVentana.Height - 20;
            juego.DibujarTexto(Fuentes.Arial, mensaje, new Vector2(5, posicionY), Color.Blue);
        }
    }
}
